Mailslot - access denied

Otázka od: Daniel Rott

9. 9. 2002 12:46

Potrebuji posilat textovou zpravu (pouze jednim smerem)
mezi dvema NT sluzbami (na temze pocitaci), ale narazim
na opravneni. Pokud obe sluzby spustim jako bezne
aplikace (na ucet uzivatele), tak vse funguje. Pokud bezi
jako sluzby (na ucet system), tak se nelze k mailslotu pripojit.

Funkce vytvoreni mailslotu probehne uspesne:
MailSlot:=CreateMailSlot('\\.\mailslot\roxton\sluzba',0,0,Nil);

Ale pripojeni z druhe sluzby skonci chybou c.5:
MailSlot:=CreateFile('\\.\mailslot\roxton\sluzba',
   GENERIC_WRITE,FILE_SHARE_READ,Nil,
   OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);

Nemate nekdo tuseni v cem muze byt problem ?

Diky
Daniel
-------------------------------------------------------
Scanning complete: NO intelligent life form in range.

Odpovedá: Milan Schembera

9. 9. 2002 19:34

Zrejme na NT bezi sluzba "Messenger", ktera si mailslot obsadi jako prvni.

> -----Original Message-----
> From: delphi-l-owner@clexpert.cz [mailto:delphi-l-owner@clexpert.cz]On
> Behalf Of Daniel Rott
> Sent: Monday, September 09, 2002 11:05 AM
> To: Delphi Forum
> Subject: Mailslot - access denied
>
>
> Potrebuji posilat textovou zpravu (pouze jednim smerem)
> mezi dvema NT sluzbami (na temze pocitaci), ale narazim
> na opravneni. Pokud obe sluzby spustim jako bezne
> aplikace (na ucet uzivatele), tak vse funguje. Pokud bezi
> jako sluzby (na ucet system), tak se nelze k mailslotu pripojit.
>
> Funkce vytvoreni mailslotu probehne uspesne:
> MailSlot:=CreateMailSlot('\\.\mailslot\roxton\sluzba',0,0,Nil);
>
> Ale pripojeni z druhe sluzby skonci chybou c.5:
> MailSlot:=CreateFile('\\.\mailslot\roxton\sluzba',
> GENERIC_WRITE,FILE_SHARE_READ,Nil,
> OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
>
> Nemate nekdo tuseni v cem muze byt problem ?
>
> Diky
> Daniel
> -------------------------------------------------------
> Scanning complete: NO intelligent life form in range.
>
>

Odpovedá: Delphin

9. 9. 2002 16:20

Taky mi to vracelo chybu 5 a pomohlo misto FILE_SHARE_READ dat
FILE_SHARE_READ or FILE_SHARE_WRITE, ale nevim proc.

----- Original Message -----
From: "Daniel Rott" <roxton@seznam.cz>
To: "Delphi Forum" <delphi-l@clexpert.cz>
Sent: Monday, September 09, 2002 11:04 AM
Subject: Mailslot - access denied


> Potrebuji posilat textovou zpravu (pouze jednim smerem)
> mezi dvema NT sluzbami (na temze pocitaci), ale narazim
> na opravneni. Pokud obe sluzby spustim jako bezne
> aplikace (na ucet uzivatele), tak vse funguje. Pokud bezi
> jako sluzby (na ucet system), tak se nelze k mailslotu pripojit.
>
> Funkce vytvoreni mailslotu probehne uspesne:
> MailSlot:=CreateMailSlot('\\.\mailslot\roxton\sluzba',0,0,Nil);
>
> Ale pripojeni z druhe sluzby skonci chybou c.5:
> MailSlot:=CreateFile('\\.\mailslot\roxton\sluzba',
> GENERIC_WRITE,FILE_SHARE_READ,Nil,
> OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
>
> Nemate nekdo tuseni v cem muze byt problem ?
>
> Diky
> Daniel
> -------------------------------------------------------
> Scanning complete: NO intelligent life form in range.
>
>
>

Odpovedá: Daniel Rott

10. 9. 2002 15:31

From: "Delphin" <delphin@post.cz>
> Taky mi to vracelo chybu 5 a pomohlo misto FILE_SHARE_READ
> dat FILE_SHARE_READ or FILE_SHARE_WRITE, ale nevim proc.

To nema vliv.

From: "Milan Schembera" <milan@missoftware.cz>
> Zrejme na NT bezi sluzba "Messenger", ktera si mailslot obsadi jako prvni.

Nevim jaky mailslot pouziva Messenger, ale pochybuji ze roxton\sluzba.

Nevite nekdo o jinem zpusobu, kterak poslat kratky textovy retezec
z jedne NT sluzby (ISAPI pod IIS5.0) do jine NT sluzby ? Asi mi
nezbyde, nez to udelat pres WinSock, ale to mi prijde ze je s kanonem
na vrabce ...

Diky
Daniel

----- Original Message -----
From: "Daniel Rott" <roxton@seznam.cz>
To: "Delphi Forum" <delphi-l@clexpert.cz>
Sent: Monday, September 09, 2002 11:04 AM
Subject: Mailslot - access denied

> Potrebuji posilat textovou zpravu (pouze jednim smerem)
> mezi dvema NT sluzbami (na temze pocitaci), ale narazim
> na opravneni. Pokud obe sluzby spustim jako bezne
> aplikace (na ucet uzivatele), tak vse funguje. Pokud bezi
> jako sluzby (na ucet system), tak se nelze k mailslotu pripojit.
>
> Funkce vytvoreni mailslotu probehne uspesne:
> MailSlot:=CreateMailSlot('\\.\mailslot\roxton\sluzba',0,0,Nil);
>
> Ale pripojeni z druhe sluzby skonci chybou c.5:
> MailSlot:=CreateFile('\\.\mailslot\roxton\sluzba',
> GENERIC_WRITE,FILE_SHARE_READ,Nil,
> OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
>
> Nemate nekdo tuseni v cem muze byt problem ?
>
> Diky
> Daniel
> -------------------------------------------------------
> Scanning complete: NO intelligent life form in range.


Odpovedá: Martin Schayna

10. 9. 2002 20:47

----- Original Message -----
From: "Daniel Rott" <roxton@seznam.cz>
> From: "Delphin" <delphin@post.cz>
> Nevite nekdo o jinem zpusobu, kterak poslat kratky textovy retezec
> z jedne NT sluzby (ISAPI pod IIS5.0) do jine NT sluzby ? Asi mi
> nezbyde, nez to udelat pres WinSock, ale to mi prijde ze je s kanonem
> na vrabce ...

Memory mapped files. Z jedne strany ho vyrobis a otevres nad nim pohled,
z druhe pouze otevres pohled. Oba mohou zapisovat i cist, ale musi se nejak
synchronizovat, napr. pomoci Mutexu.

Na DSP a spol. najdes urcite nejake Delphi obalky, hledej MapFiles.pas
apod.

Martin Schayna